package com.example.ssrbac.service;

import com.example.ssrbac.dto.PageDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * 页面服务接口
 * 
 * 定义页面管理相关的业务方法，包括：
 * 1. 创建页面
 * 2. 更新页面信息
 * 3. 删除页面
 * 4. 查询页面信息
 * 5. 获取页面树形结构
 * 
 * @author Your Name
 * @version 1.0
 */
public interface PageService {

    /**
     * 创建新页面
     * 
     * @param pageDTO 页面信息
     * @return 创建的页面信息
     */
    PageDTO createPage(PageDTO pageDTO);

    /**
     * 更新页面信息
     * 
     * @param id 页面ID
     * @param pageDTO 更新的页面信息
     * @return 更新后的页面信息
     */
    PageDTO updatePage(Long id, PageDTO pageDTO);

    /**
     * 删除页面
     * 
     * @param id 页面ID
     */
    void deletePage(Long id);

    /**
     * 根据ID查询页面
     * 
     * @param id 页面ID
     * @return 页面信息
     */
    PageDTO getPageById(Long id);

    /**
     * 分页查询所有页面
     * 
     * @param pageable 分页参数
     * @return 页面信息分页列表
     */
    Page<PageDTO> getAllPages(Pageable pageable);

    /**
     * 获取页面树形结构
     * 
     * @return 页面树形结构
     */
    PageDTO getPageTree();
} 